package com.ym.core.utils.qiniu;


/**
 * 生成QNEKY工具
 *
 * @author: 李涛
 * @version: 2019年05月07日 15:19
 */
public class QNKeyUtil {

	/**
	 * 分割字符，默认[:]，使用:可用于rdm分组查看
	 */
	private static final String KEY_SPLIT_CHAR = "/";


	/**
	 * qn的key键规则定义
	 *
	 * @param prefix 项目前缀
	 * @param module 模块名称
	 * @param func   方法名称
	 * @param args   参数..
	 * @return key
	 */
	private static String keyBuilder(String prefix, String module, String func, String... args) {
		StringBuilder key = new StringBuilder(prefix);
		// KEY_SPLIT_CHAR 为分割字符
		key.append(KEY_SPLIT_CHAR).append(module).append(KEY_SPLIT_CHAR).append(func);
		for (String arg : args) {
			key.append(KEY_SPLIT_CHAR).append(arg);
		}
		return key.toString();
	}

	/**
	 * qn的key键规则定义
	 *
	 * @param qNKeyEnum 枚举对象
	 * @return key
	 */
	public static String keyBuilder(QNKeyEnum qNKeyEnum, String fileKey) {
		return keyBuilder(qNKeyEnum.getSystem(), qNKeyEnum.getResourceType(), fileKey);
	}

}
